The present invention relates to a program parallelizing apparatus For generating From a source program to be executed an object program which is susceptible to parallel processing by a multi-processor system including a plurality of processors, a communication mechanism For performing inter-processor communications and a synchronizing mechanism for allowing the processing to proceed among the processors through coordination (wait) processing.
Heretofore, in the case where parallel processing is to be performed in a multi-processor system, task scheduling is resorted to in which a program is divided into units each of a large size, such as jobs, sleds or the like, wherein it is prerequisite for the task scheduling to confirm beforehand by a flag check or by a token control method that all the inter-task relations are satisfied.
A technique relevant to this type processing system is disclosed, for example, in JP-A-63-184841.
The prior art program parallelizing technique is disadvantageous in that since the program is divided into units or segments of a large size for scheduling for parallel processing, it is difficult or even impossible to derive the parallelism which the program inherently has, making it difficult or impossible to achieve the parallel processing effectively.
In addition, because the inter-task sequential relation is controlled or managed by the flag check or by the token control, considerable time is required for generating the parallelizing schedule, giving rise to another problem.